1. 함수 추출하기
함수 인라인하기(6.2)과 반대
절차
- 함수의 목적을 드러내는 이름을 붙임
- 추출할 코드를 새 함수에 복사
- 참조하는 지역변수는 인수로 전달
- 새 함수에서만 사용되는 변수는 지역변수로
- 지역변수의 값을 변경할 경우 새 함수의 결과로 전달
- 새로 만든 함수를 호출하는 문으로 수정
예시 코드
😞 Before
const checkValidation = async (encryptParam) => {
const {validationCode} = await checkValidation({encryptParam})
const validCode = VALID_CODE[validationCode]
if (validCode === 'error') {
goMain()
}
else if (validCode === 'expired') {
toast('만료되었습니다.')
}
else if (validCode === 'different') {
toast('명의가 일치하지 않습니다.')
}
}
😃 After
const checkValidation = async (encryptParam) => {
const {validationCode} = await checkValidation({encryptParam})
handleInvalid(VALID_CODE[validationCode])
}
const handleInvalid = (validCode) => {
if (validCode === 'error') {
goMain()
}
else if (validCode === 'expired') {
toast('만료되었습니다.')
}
else if (validCode === 'different') {
toast('명의가 일치하지 않습니다.')
}
}